If you're embarrassed, angry, or frustrated about your toddler not sharing, I'll let you in on a little secret:
Little kids don't share!
When human children are born, they are virtually helpless and their brains are barely ready to do anything. Newborns can't talk, knit, type or use an iPhone. They can't even roll over. Their brains continue to develop after they are born, which is why one day they can pick their nose, but the day before they couldn't (all the synapses for nose picking got completed). For the first six or seven years of a child's development, their brain is furiously trying to make connections so they can do all the things humans do.
So, when you parents get crazed and demented about your 2- and 3-year-olds not sharing, you're the one with the problem, not them. Kids at that age play parallel. They don't have impulse control, they're very territorial, they want what they want, and they don't play well with each other. Those developmental stages take time. Kids don't share until they are about 7 because their brains are not yet wired for it.
I've heard parents contest, "Well, what we do is sit with our 1 1/2-year-old, and when they hand something back to us, we say, 'Yay, that was so nice!', and smile and make it a big deal." But that is not sharing. If another kid comes into the room and takes that same thing, it's blood in the water. You can tell your toddler all you want how nice sharing is, but given a chance to split something equally, they won't.
So what should you do when other kids come over? Put out a ton of toys. Stop screaming, threatening, spanking, and going crazy because you're embarrassed that your 12-month-old is not acting like they're 12. Wait until they are 7. By then, they will have the pre-frontal lobe development and maturation necessary to actually share. If after the age of 7 your kid is a little brat that never wants to share, that's a different issue, but until then, get off their case and relax.