G.,
I have been teaching stranger danger in pieces with my 7yr old. For instance when he was younger it was just the "secret word" and "you're not my mommy/daddy". Then the don't look for a lost puppy and sorts when he was old enough to go across the street to the park. Now it's what to do if approached on your bike, hitting and screaming.
I am very honest with him and let him know that the most important thing to do is get away. Most kidnapped children are not returned. They should know they are allowed to fight back if needed. I wouldn't say I scare him (maybe I do) but I know he would NEVER just walk away with a stranger, because he knows the reality of it.
I think if you don't explain why they can't go with a stranger then it won't be effective. Just like if you don't tell your child that if they go swimming or reach into a pool alone they could drown, then they don't understand the magnitude.
Someone I know just tells their children NO but doesn't explain why. The children sometimes think they can't do something for a different reason.
You can communicate this softly with a 3 yr old. I'm not saying you should tell him he's going to be hurt or killed, just that they are bad people and will want to keep them since they are so cute (or whatever) and Mommoy and Daddy will miss him.