Preheat oven to 350°F (175°C). Grease three 8-inch round cake pans and line bottoms with parchment paper circles. Set aside.
In a medium bowl, whisk together flour, baking powder, and salt until evenly combined. Set aside.
In a large bowl, beat butter and sugar with an electric mixer on medium-high speed until light and fluffy, about 3-4 minutes. Add eggs one at a time, beating well after each addition, then mix in vanilla extract.
With mixer on low speed, add flour mixture in three additions alternating with milk in two additions, beginning and ending with flour. Mix just until no streaks remain.
Divide batter evenly among three bowls (about 2 cups each). Leave one bowl white, then use a toothpick to add red gel coloring to one bowl and blue to the other, stirring until colors are vibrant and uniform.
Pour each colored batter into a prepared pan. Bake for 25-28 minutes, until a toothpick inserted in the center comes out clean and tops spring back when lightly pressed. Cool in pans for 10 minutes, then turn out onto wire racks to cool completely.
For the frosting, beat cream cheese and butter together until smooth and creamy, about 2 minutes. Gradually add powdered sugar one cup at a time on low speed, then increase to medium and beat until fluffy. Mix in vanilla and enough heavy cream to reach a spreadable consistency.
Place the blue layer on a serving plate and spread with 3/4 cup frosting. Top with white layer, spread with frosting, then add red layer. Apply a thin crumb coat over the entire cake and refrigerate for 30 minutes.
Frost the cake with remaining frosting, creating swirls or smooth finish as desired. Refrigerate until 20 minutes before serving for best texture and cleanest slices.