You need all these redirects in the root htaccess so they are processed ahead of everything else.
Yes, you can redirect many URLs with one rule. You replace the literal path and filename in the rule with a Regular Expression that will match a group of requests, capture the variable part within ( and ) parentheses, and finally substitute it into the target URL as $1 etc.
RewriteRule ^pets/(cat|dog|iguana|aardvark|armadillo)\.html http://www.example.com/animals/$1.php [R=301,L]
RewriteRule ^pets/([a-z]+)\.html http://www.example.com/animals/$1.php [R=301,L]