I already stated an answer related to this one, so I'll just repeat it here with a few changes.
Now to start with, have you heard of despawning?
Thanks to the chunk loader, you are only allowed to load a limit of chunks. As you leave that area and the chunk is no longer visible, there are certain instances for these mobs to despawn.
It's better to actually find name tags or trade for name tags, name them and they won't despawn even if you are out of the chunk.
Of course, they might still despawn for other reasons (just like what happened to my horse), but setting a name for them would give extra protection. Just make sure to protect them or they're dead.