Texture painting (and any images in general) are saved as separate files in blender by default! They're not saved as part of your .blend file. You can press alt+s while your mouse is in the image viewer (or just click the image dropdown menu at the top of the image viewer, which should have an asterisk if your image is unsaved) to save the image.
Alternatively, you CAN pack the images into the blend file! Under the file menu in the top left, select external data > pack resources. Then, whenever you save your blend file it should ask if you want to save the image too. note: you DO need to have saved a separate copy of the image first for this to work, but you do NOT need to keep the separate copy after you've packed the file.
No problem, anything to help a fellow blender artist! While there's a very good reason blender does images like that, it's admittedly very unintuitive and could definitely use some updates to make it clearer.
I can't really complain, it's an amazing and free program. I just wasted 4 hours trying to figure it out though. Their UI has gotten so much better over the years, it's not bad for beginners. But it's still not great once you get into the weeds. I'll never understand why move is 'g' and I'll never understand why you can still use the menu instead of nodes, but you have to push the dot for color to get the image texture. There's some seriously quirky things. Again, I would recommend it to everyone, but I still get grumpy sometimes.