You do not need to wrap the text in square brackets in a separate space.
Rather, to fix this problem, add the RLM control character ( ‏ ) after the closing parenthesis. The RLM character acts like a Hebrew / Arabic character, so the bracket (which is a weak character) changes its direction and moves to the right place.
Same:
<div>מחיר אחד(3)‏</div>
NB: If you set the dir="rtl" attribute in an element, then even the RLM command character is not needed.
Same:
<div dir="rtl">מחיר אחד(3)</div>
CODEPEN (jsFiddle down by me)
This microsoft doc explains the RLM control character along with other similar control characters.
source share