2 and 3 are aliases for RSA. Some rarely used PGP versions used them to
indicate signing or encrypting RSA keys. GPG supports them. The specs say
There are algorithm types for RSA Sign-Only, and RSA Encrypt-Only keys. These types are deprecated. The "key flags" subpacket in a signature is a much better way to express the same idea, and generalizes it to all algorithms. An implementation SHOULD NOT create such a key, but MAY interpret it.
What version of libgcrypt are you using? ("gpg --version" shows that)