In the current version of Ethereum Smart Contracts can call each other. It is planned to introduce Shards in Ethereum 2.0. But I can not find any information about how smart contracts are able to interact with each other if they are located in different shards
I'm not an expert on Eth2.0 with shards, but currently there is already running phase 0 of the Eth2.0, called Beacon Chain. This beacon chain is like an own blockchain, with the purpose of delegating calls between shards. So the beacon chain is in charge of deciding where and how to distribute the information - I'm just not sure exactly how it achieves this.
In a later stage, the actual shards are implemented and they are connected to the beacon chain for interoperability.