Can't expect small kids to understand sharing when they've not been taught to.
Teach my kids to ask others to "Exchange", then thrust another toy in their face to tempt them, then take the toy my kid wants from the other kid's loosened hand, which had loosened to take hold of the new toy. Then say, "Thank you" during the exchange. Gotta guide their hands the whole way, in the beginning, until they can understand and remember the process, then transition to verbal reminders to "exchange".
Sometimes, the other kid doesn't want the new toy offered. Told C1, "He doesn't want this one. Find one that he wants" and guide C1 to find another toy that may interest him. Keep offering new toys till one works. If all doesn't work, then tell C1, "He's not ready to share, so we can't force him to. You will have to wait till it's your turn to play." Then calm, console and distract C1 as much as possible while keeping a hawkeye on the other kid, then prompting C1 to grab it the minute the kid is done, "Ok, he's done. Your turn to play now! Go take it!"
Started teaching C1 around 2 years old and Condor 2@ 18 months.
C1 and C2 do not fight over toys (sometimes still do, if it's a brand new toy) and can exchange toys peacefully on their own when at home or even seated in their car seats during a long journey. Each automatically understands that when a new toy is thrust in their face, if they like it, they give their current toy to the other without a fight. They do not hoard toys, and tend to play with one toy at a time. Sometimes, when C2 is done with his toy (the one that C1 wants), he will walk over to C1 and hand it to him without further prompting.