Preheat the Oven: Preheat your oven to 350°F (175°C). Grease and flour your cake pans or line them with parchment paper.
Prepare the Cake Batter: In a large mixing bowl, combine the cake mix, instant pudding mix, eggs, water, and vegetable oil. If using, add the sour cream. Mix until well blended. Use an electric mixer on medium speed for about 2 minutes, or mix by hand until smooth. Pour the batter into the prepared cake pans.
Bake the Cake: Bake in the preheated oven for the time recommended on the cake mix box, usually 25-30 minutes, or until a toothpick inserted into the center comes out clean. Allow the cakes to cool in the pans for about 10 minutes, then transfer to a wire rack to cool completely.
Prepare the Pudding Frosting: In a mixing bowl, combine the instant pudding mix and cold milk. Whisk for about 2 minutes until it thickens. If using, add the heavy cream and whisk until well combined and thick. Let the pudding frosting set in the refrigerator for about 10-15 minutes to firm up a bit.
Frost the Cake: Once the cakes are completely cool, use a spatula to spread the pudding frosting over the cake layers. You can frost between the layers and over the top and sides of the cake.
Serve: Slice and serve your delicious cake with pudding mix and simple pudding frosting.