ffmpeg copy attached fonts to be used by .ass subtitles

First, you actually can copy fonts with ffmpeg. The -map option overrides some defaults and selects all streams from the input. Example:

ffmpeg -i infile.mkv -map 0 -c copy outfile.mkv

Also see the FFmpeg Map documentation for more info.

For attaching fonts to an existing video, the -metadata:s:2 option is indeed selecting stream 2, but if you look at your mkvinfo output you'll see that attachments are their own stream. They are not "attached" to the subtitle stream. So in the example in your question you would want -metadata:s:3. And additional attachments should use corresponding stream specifiers.