You probably don't want to hear this, but just do it and don't feel badly about it! We just transitioned our little guy (soon-to-be 3) from his crib to a toddler bed without any issues by making it about "being a big boy" and letting him pick out new bedding. My mom suggested this method and it worked like a charm. We literally spent an hour in Target looking at bedding b/c he was so excited he simply couldn't choose!
As for the co-sleeping issue... 3 yrs old is far too old to be sleeping in your bed. This is wreaking havoc on your life and your relationship, so you need ot take a hard line here and not "baby step it".
1. Buy a toddler bed and pick out bedding
2. Put your toddler to bed starting at 7:30 by tucking her in with a kiss and letting her throw a fit. She will be upset and get out of her bed numerous times, but just keep putting her back in (without dialogue, just pick her up and put her back).
3. If your daughter is asleep by the time your son needs to go to bed, then great. If not, your son gets to sleep in your room until her "Cry It Out" period is over- or let him sleep on the couch and you two can read or go enjoy eachother in YOUR ROOM!
Seriously- she's running the show here and you both need to be the parents and put her in bed at a reasonable hour in her own bed. This has gone on way too long and the cuddling is about you needing it, not her. Find the "cuddles" and "treats" in intimacy with your spouse.
** They are still young enough that "gender" is only an issue if you make it one. As long as they have privacy when dressing and their own play areas in the house this isn't an excuse.**