In conventional joint communications and sensing (JCAS) designs for multi-carrier multiple-input multiple-output (MIMO) systems, the dual-functional waveforms are often optimized for the whole frequency band, resulting in limited communications--sensing performance tradeoff. To overcome the limitation, we propose employing a subset of subcarriers for JCAS, while the communications function is performed over all the subcarriers. This offers more degrees of freedom to enhance the communications performance under a given sensing accuracy. We first formulate the rate maximization under the sensing accuracy constraint to optimize the beamformers and JCAS subcarriers. The problem is solved via Riemannian manifold optimization and closed-form solutions. Numerical results for an 8x4 MIMO system with 64 subcarriers show that compared to the conventional subcarrier sharing scheme, the proposed scheme employing 16 JCAS subcarriers offers 60% improvement in the achievable communications rate at the signal-to-noise ratio of 10 dB. Meanwhile, this scheme generates the sensing beampattern with the same quality as the conventional JCAS design.