-u 2 はそうかも知れないけど -u 3 は読めないじゃん?
-u ってどうやって使うの?

echo "test" >&3 | { read -u 3 line; echo "[$line]"; } は動かなかった