M.J.
Every year, I give my kids a set amount of money ($40 each) that they can spend on gifts for a child their age. They can choose whatever they'd like to buy. In the past, we've donated to Toys for Tots, but this year gave the gifts to a school event where we're providing gifts for kids at a school in our city in a less prosperous area.
My kids really get into it! After 45 minutes, they still couldn't decide what to buy so I had to get them to narrow it down. They took it so seriously, which was awesome.
At three, I think your child can still understand enough to help. That's the age when we'd get our kids involved.
We donate to the local food bank financially year-round, but I make sure the kids get a physical sense of what it means to help by bringing in canned goods to holiday food drives. It leads to a lot of good discussions about what it means to do the right thing.