If it is clear from the context that you are literally speaking of dogs, then it is fine to use these terms. If your audience is uneducated, you may need to inform them of this. Don't dodge this responsibility if it arises.
A female canis lupus familiaris = a bitch
A male canis lupus familiaris = a bastard
It will be understood that you talking about adult dogs unless you specify:
A puppy = pup | juvenile
A female canis lupus familiaris PUPPY = a bitch pup | a juvenile bitch
A male canis lupus familiaris PUPPY = a bastard pup | a juvenile bastard
Of course, "juvenile" also has insulting conotations when used against an adult person too, which makes using this language SUPER-FUN! Shakespeare would approve strongly! (But for your use, I would probably stick to
_____ pup myself.)
There may be some people unfamiliar with these literal meanings, who only know them as insults, not realizing that original insult was in comparing a person to a dog. For some reason, "bitch" as a personal insult carries a heavy anti-female conotation that "bastard" does not possess in equal measure against men.
Neither one of these words is in the FCC's "7 Filthy Words" list:
So if you're a guest on "The View", bring along your 2 pet laboradors (1 of each sex), let 'er rip, & watch Barbara Walters blush.
If you can't make the context clear, or can't be certain who the audience is, or don't have the time or desire to have the same fun conversation about language we're having here, then you are stuck with the plain old boring:
female dog, male dog, female puppy, male puppy
as no other one-word alternatives exist in American language.