It sounds like the other three year old was having a hard time, and lashed out at your son. And of course, that could be a traumatic experience for your toddler. We all wish we could protect our children from incidents like this.
But since we can't, let's help our kids find their voice so they can stick up for themselves without attacking others. We all need to learn to stay grounded in our own dignity and compassion as we cope with the unhappy people who will inevitably come our way. That's how we, and our kids, help transform the world we live in -- by adding to the love, rather than the pain. How?
1. Model an appropriate response to the other child.
"You sound mad! Are you saying that you don't want other kids playing in the puddles?"
Obviously, you won't usually engage with an enraged stranger. But most people who are rude just want their position acknowledged. Once you let them know you understand their concerns, they generally feel less threatened, and are therefore less threatening. Since you're speaking to a child who seems to have some reason to feel unhappy, you might resolve things simply by acknowledging her point of view.
"I guess it's hard to share the puddles, isn't it? Don't worry, there are plenty of puddles for all of us to enjoy!"
The more kind and empathic you can be, the more the other child will soften. Who knows? She might even smile and begin playing with you. At the very least, most kids will shrug and move on.
2. Reassure your child that he's safe.
Turn to your child and say something like "She's mad that we're playing in the puddle.... Don't worry... I will keep everyone safe..... There are plenty of puddles for everyone." It's fine, even good, if the other child overhears this. It's probably scary for that child to feel so much at the mercy of her own aggression.
3. If the other child says anything else inappropriate, like
"No! These are OUR puddles!" or moves physically toward your child, you'll need to protect your child by stepping between them. Model strength by restating your limit in a strong, kind voice. For instance, you might say firmly "I know it's hard to share, AND these are EVERYONE's puddles.... We will stay over here so you can have those puddles where you were playing before."
4. Support your child to find his voice.
In a situation where another child infringes on your child by pushing him, or grabbing something from him, explicitly give your child permission to speak up for himself, without acting like it's an emergency. You might say gently "Are you okay with that? You can say 'Don't push my body' or 'Hey, I'm playing with this...I will give it to you when I'm done.'"
5. If necessary, appeal to the adult who is accompanying the other child.
You don't want to get into the position of fighting with the other adult, or implying that they're doing a bad job. Instead, smile at them and directly appeal for them to step in, by saying something like: "It sounds like your girl loves these puddles and needs a puddle of her own! Our family is using this puddle right now. We'll be happy to let her have this puddle once we're done with it." At this point, most adults will move their child off to another puddle.
Should you "teach" the other adult how to do a better job with their parenting? You are! Modeling is always the strongest teaching. Love is always the strongest teacher.
6. Help your child work out his feelings.
It's scary for your child to feel that he's the object of someone else's aggression. Once the other family is gone, say "That was hard, wasn't it?... I think that girl must have been having a tough day! What did you think?" If he seems upset, you might want to role play a bit so that he gets the experience of saying "Excuse me?! I was playing in that puddle! You can have it as soon as I'm done." Encourage him to use his strongest voice.
And then? Get your child laughing about the incident to dispel any anxiety you're both feeling, by playfully asking if you can share his puddle, or inviting him to share yours. Get some good splashing in! And be grateful that you're in a position to raise a child who will make the world a better place, just by being himself.