But catholic schools are often funded by the Catholic Church, so they get that funding as well (in addition to donations from alumni and fundraising).
The things you just said are either largely untrue or fairly insignificant, or both.
Actually they are very much true. In fact, a significantly large number of the Catholic schools in the US are owned by the local diocese and get funding from them. They also do various fundraisers to raise more money and often get donations from former students or members of the community. This is in addition to the large tuition fees they charge families. In the end, Catholic schools get far more money than public schools.
Catholic schools are owned by dioceses, but they don't generally receive a significant amount of funding from them. If you were at all familiar with the way the Catholic Church works, you'd know that, by and large, money goes from the local parishes to the diocese, not the other way around. With donations, that varies wildly depending on the school, but in my experiences it's not a significant source of funding for the vast majority of schools. Also, public schools do fundraisers all the time. Enough to drive people nuts.
Public schools get more money than private schools, because they do things the private schools don't do, and don't want to do. Things like English as a second language programs and the many permutations of special education, which largely don't exist outside the realm of public schools, cost a lot of money