As sad as it is, kids are Assholes, and it is our job as adults to slowly teach them to be good people. Of course that won't be over night, instead you will be busy for the next 15 years at least, to show her how to be nice. At the point you are now, there is nothing unusual, she is young and doesn't understand, that she might hurt somebodies feelings by acting out that way. The only thing that you can do is tell her strongly that she hurt someones feelings and that, this is a bad thing. Since that already happened, there is not much that you can do. On the other side the 6 year old also needs to understand, that a 3 year old acts mostly out of impulses and doesn't understand that a gift is also a social gesture. So next time, scold her, explain the 6 year old, that a 3 year old doesn't understands things as she does. If there is still tears (and there will be ...) it is sadly part of learning for kids, the same way a toddler doesn't understand the concept of "hot don't touch" until the burns make it clear.