You're using Solaris 10 so I assume you're on zfs. Assign another disk to your host or create another zfs file-system with fault tolerance of your choice.
Mount it under an arbitrary mount, say /opt-new. Stop any processes using /opt if you can, and recursively copy the contents to your new file-system.
At this point, definitely stop any apps using /opt. Move it out the way, say /opt-old and set your mountpoint for your zfs filesystem mounted on /opt-new to /opt.
Restart apps and confirm everything is well. Delete /opt-old once you are happy you do not need a roll-back.
Yes this can be done if you have (or can create) the additional space on another disk or slice.
In general terms
Identify/create/obtain the additional space and note it's device name.
metainit to create a new md device that contains your existing /opt and the new device
unmoun the existing /opt
/etc/vfstab and create a new entry for /opt using the new md device
mount the new /opt
use growfs to expand the new /opt into the additional space
growfs -M /opt /dev/md/rdsk/<newdevice>
You should have a look at the solaris man page for
growfs which provides some more detail.