I learned a good way to deal with this (normal) behavior from my children's preschool teacher. If she heard a child say "You're a stinky poopy head" another child, she would first see how the other child reacted. Her response would change accordingly.
A) The "victim" has little or no reaction (or the child is calling the teacher a SPH) : "Johnny, you're upset because Jane has the train and she's not done with it yet. You can ask Jane if you can have a turn. You can say, 'Jane, may I have a turn with the train?' " She would then help Johnny and Jane have a discussion about the train. If he said it again, she would calmly address it. "You are calling Jane a name because you're angry. We don't call people names. That could hurt their feelings. You can tell Jane how you feel instead. You can say, 'Jane....'"
You get the idea. The focus is on teaching the child what *to* do when he is frustrated. The name calling is addressed peripherally, but it will correct itself when Johnny learns a better way to handle the situation.
If Johnny persisted in the name calling, the teacher would redirect him. "When you continue to call Jane a name, you'll have to play over here instead. I can't let you continue to call Jane names."
B) If the "victim" is upset by the name calling: "Johnny, you called Jane a name just now. Look at Jane's face. See how sad she is? When we call people names, that can make them feel bad. If you want a turn with the train Jane has, a better thing to do would be to talk to her... etc."
In this case the emphasis is on developing empathy. *Seeing* how one's actions affect others. (If Jane were physically hurt -- by hitting or whatnot -- the teacher would have the hitting child help her in some way if that were practical.) 3 year olds don't always make the connection right away, but it helps them move in the direction of empathy, and gives them a reason why certain actions are "wrong" other than just because a grown up said so. After the empathy angle, the focus moves again to what *to* do.
HTH! It sure has helped me with my kids! (They also use the lovely phrase your ds does, though mercifully, they usually only use it in a mutually teasing manner!
They get under eachother's skin in other ways though!)