First, you need to get your terminology straight -- you can ADD or MOVE or COMPUTE (etc) a variable in COBOL. You do not "populate fields". In fact, the COBOL
Language Reference manual has ZERO occurrences of the word "populate" -- which should be a clue to you that your terminology is wrong.
Second, you can do pretty much anything in COBOL -- if you're willing to spend the time and do the work.
Third, your post is not consistent. A PIC S9(13)V9(2) variable would not ever, under any circumstances, have the value 33.33 (positive OR negative) unless the code putting a value into the variable is in error. The V is an IMPLIED decimal point and as such a decimal point will not appear in the variable -- ever.
Fourth, your post is short of explanation -- since the output variable is 15 bytes, and "(33.33)" is only 7 bytes (ignoring the decimal point issue above) -- where did the other 8 bytes go? Is your value supposed to be centered? left-justified? right-justified?
Finally, making some of the usual assumptions, you could do something like:
05 VAR-X PIC X(18).
05 VAR-X-R REDEFINES VAR-X.
10 VAR-LEFT PIC X(01).
10 VAR-OUTPUT PIC 9(13).9(2).
10 VAR-RIGHT PIC X(01).
MOVE IN-VAR TO VAR-OUTPUT.
INSPECT VAR-X-R TALLYING WS-SPACE-COUNT FOR LEADING SPACE
IF IN-VAR < ZERO
MOVE ')' TO VAR-RIGHT
IF WS-SPACE-COUNT = 1
MOVE '(' TO VAR-LEFT
ELSE
MOVE '(' TO VAR-X-R (WS-SPACE-COUNT : 1)
END-IF
END-IF.
Warning: this code has NOT been tested.