Preheat the oven to 350 degrees. Line the cupcake pan with cupcake liners.
Add the pudding and cake mix into a bowl. Mix with a hand mixer and add water, oil, egg whites, and sour cream. Mix on medium until combined.
Separate the batter evenly between two bowls. Add pink food coloring to one and blue to the other.
Alternate the colored batter into the cupcake liners until they are 2/3 full. Put the pan in the oven and bake for 18-20 minutes or until a toothpick comes out clean. Let the cupcakes cool down entirely before adding the frosting.
To make the frosting, cream the butter for two minutes until fluffy and light. Mix in the vanilla and cotton candy flavoring. (start with 1-2 drops as this is strong)
Slowly mix the powdered sugar one cup at a time, alternating with 1 tablespoon of the half and half and 1 tablespoon of the sour cream. (if you want to thicken the frosting at this point, you can add some extra powdered sugar)
Divide the homemade frosting evenly between three bowls and add blue food coloring to one, pink to another, and leave the last bowl without any color added.
Add each colored frosting into a small piping bag, cut the tips off, and insert them all into one large piping bag.
Before you start to add the frosting to the top of the cupcakes, squeeze a bit out onto a plate to get all the colors flowing together. Then frost the cupcakes, garnish them with edible glitter, and cotton candy if you want!