Here's the "one line":
paste <(printf "%s\n" "${terms[@]}") <(printf "%s\n" "${defs[@]}")
This will create rows consisting of the term and def, separated by a tab, which, strictly speaking, can be “side by side” (since they are not in the columns). If you knew how wide the first column is, you can use something like:
paste -d' ' <(printf "%-12.12s\n" "${terms[@]}") <(printf "%s\n" "${defs[@]}")
which will place or trim the terms to 12 characters exactly, and then put a space between the two columns instead of the ( -d' ' ) tab.
source share