You almost have it! MAKEDATETIME receives 2 values: a date and a time. On the example above, while the first value you sent to the function is a date, the second one is also a date (DATEPARSE returns a date). Instead, we need to send a time for the second value. Here's one way to do it:
MAKETIME is creating a time value from [Trans Time]. Since [Trans Time] could have either 2 or 3 characters, we need to keep that in mind when selecting the hours (take either 1 or 2 characters from the left, depending on the length of the string). Minutes are easier, they are always the last 2 characters. And we can set 0 for seconds. Here's a function you can copy:
INT(LEFT(STR([Trans Time]), LEN(STR([Trans Time])) -2)), //hour
INT(RIGHT(STR([Trans Time]), 2)), // minute
0) // second
Hope this helps!