Add the cream cheese, butter and peanut butter to a mixing bowl.
Using an electric mixer (hand beaters or the paddle on a stand mixer), beat together on medium-high speed until smooth. You may need to stop a few times to scrape down the sides.
Add the powdered sugar and beat together on low until the sugar is mixed in. (If you set the mixer to high, powdered sugar will go everywhere).
Increase the speed to medium-high and beat together until the frosting is silky smooth.
Notes
Bring the butter and cream cheese to room temperature. This will take up to an hour (depending on how warm your environment is), but you can quicken this by cutting the butter and cream cheese into smaller pieces.
Use shelf stable peanut butter and not the natural, drippy kind of peanut butter with oil on top.
For the smoothest frosting, sift your powdered sugar to remove any lumps.
If you prefer the frosting sweeter, just add more powdered sugar, a little at a time, until it reaches your desired sweetness.
This frosting is not overly thick. You can thicken it up by adding more powdered sugar, but do so a little at a time, until it reaches your desired consistency.
If the frosting seems a little soft or runny, you can refrigerate it for 30-60 minutes to firm it up.
If making this frosting dairy-free/vegan, keep in mind that plant-based butters and cream cheeses do not need as long to come to room temperature and may result in thinner frostings.