If your database can handle it, I'd double down on FerranB's solution and write a geeky NATURAL FULL JOIN solution. I mean, when was the last time you got the chance to do so?
SELECT owner, COUNT(dog_name), COUNT(cat_name)
FROM cats
NATURAL FULL JOIN dogs
GROUP BY owner