I'm having trouble writing a regular expression given the following $\{a, b, c\}$ which produces the set of strings of length 3. I don't really understand how to restrict the length of the string. Obviously you could have 3 $a$'s, or 3 $b$'s or 3 $c$'s, but you could have $aab, aac, aba, \dots $
Is it something like $a^* \cup b^* \cup c^*$?
The regular expression you have given gives the language $$\{\varepsilon, a, aa, aaa, \dots\} \cup \{\varepsilon, b, bb, bbb, \dots\} \cup \{\varepsilon, c, cc, ccc, \dots\}$$ $$= \{\varepsilon, a, aa, aaa, \dots, b, bb, bbb, \dots, c, cc, ccc, \dots\},$$ which is clearly not what you are after.
Using only union ($\cup$), concatenation ($\circ$), and the Kleene star ($^*$), you could do something like $$(a \cup b \cup c) \circ (a \cup b \cup c) \circ (a \cup b \cup c).$$