You'll have to forgive me for not citing a reference right away, but the book I am basing my statement on is at home.
According the the
American Academy of Pediatrics, children are naturally quite selfish up until age four or five. Thinking outside of their own experience requires a level of abstract thinking that children don't develop until a little later. So if your 3 year old seems a little selfish, it may be more developmental than parental. When you're making the list of what to give family and friends with your son, don't be surprised if he wants to give everyone the things that he wants to receive. (
Caring for Your Baby and Young Child: Birth to Age 5)
But I like your approach. As his mind develops, he should adapt to selfless thought quite easily.