I've been using two methods that really work.
1. I ask DD to help me with my chores which she is always more than happy to do because it makes her feel "big." She can bring all the dirty laundry to the basket or pick up things or fold rags and towels. When she helps me out, I'm inclined to help her pick up as well.
2. We have a rule at our place that I try my best to enforce, though I'm not perfect, and that is that you have to pick up one thing before you get another out. If she wants me to get the paints out for her, she has to put away the puzzle first. She usually wants to do the second thing enough that she will put the first away.
And when all else fails, I sometimes employ a hated activity like bedtime or bath time. If she won't pick up I'll get her to stall by saying "oh, okay then, well it's bed/bath time anyway so go ahead and get in bed/bath." Then she will rush to the toys and say "I can't right now, Mama! I have to pick up my toys!"