Preheat your oven to 350°F (175°C). Grease and flour two 9-inch round cake pans.
In a medium bowl, whisk together the flour, baking powder, and salt.
In a large bowl, beat the butter and sugar together until light and fluffy, about 3-4 minutes. Add the eggs one at a time, beating well after each addition. Mix in the vanilla extract and cotton candy flavoring if using.
Gradually add the dry ingredients to the wet ingredients, alternating with the milk, beginning and ending with the dry ingredients. Mix until just combined.
Divide the batter evenly between two bowls. Tint one half pink and the other half blue using food coloring. Spoon the batter in alternating colors into the prepared cake pans, swirling gently with a knife to create a marble effect.
Bake for 25-30 minutes, or until a toothpick inserted into the center comes out clean.
Let the cakes cool in the pans for 10 minutes, then remove them from the pans and transfer to a wire rack to cool completely.
To make the frosting, beat the butter until creamy. Gradually add the powdered sugar, then the vanilla extract and heavy cream. Beat until light and fluffy. Divide the frosting in two and color each portion pink and blue if desired.
Frost the cooled cakes and decorate with cotton candy on top just before serving.