The syntax for SNMPv3 is significantly different from SNMPv1 ... and unfortunately, many of the options that snmptrap expects are very sensitive to position on the command line. You're not the only one to be tripped up by this. :-)
You can try something more like the following:
snmptrap -v 3 -l authPriv -u sam -a MD5 -A mysecretpass -x des -X mypassphrase \
127.0.0.1 69 coldStart .1.3.6.1.2.1.1.1.0 s trap
The option immediately following the OID is a type indicator (integer, unsigned, etc.), and "3" is not a valid specifier (see man snmptrap). I've chosen s for string here, but you'll need to adapt your command to use the appropriate type for your purposes.